/***********************************************************************************
 @file   
 @author
 @attention
 ***********************************************************************************/
#include "mid_flash.h"
/***********************************************************************************
 * @global param
***********************************************************************************/

/***********************************************************************************
 * @brief  从指定地址开始写入指定长度的数据
 * @param  起始地址 数据指针 字节数
***********************************************************************************/
uint8_t flash_write(uint32_t addr,uint8_t *buf,uint16_t len)
{
    uint16_t i;
    Flash_LockSet(0x80000000);//STEP-2 FLASH 操作区解锁(Sector124~127)
    
    while(Ok != Flash_OpModeConfig(FlashSectorEraseMode));
    Flash_SectorErase(addr);
    
    while(Ok != Flash_OpModeConfig(FlashWriteMode));
    Flash_Write8(addr, (uint8_t *)buf, len);
    
    while(Ok != Flash_OpModeConfig(FlashReadMode));
    while(Ok != Flash_LockAll());
    return Ok;
}
/***********************************************************************************
 * @brief  从指定地址开始读出指定长度的数据
 * @param  起始地址 数据指针 字节数
***********************************************************************************/
void flash_read(uint32_t addr,uint8_t *buf,uint16_t len)   	
{
	uint16_t i;
	for(i=0;i<len;i++)
	{
		buf[i]=*(int8_t*)addr; 
		addr++;	
	}
}
 /***********************************************************************************
 * @brief  flash 初始化
***********************************************************************************/   
void flash_init(void)
{
//    #if(defined(HARD_WARE)&&(HARD_WARE==HARD_WARE_FIRST))
//    
//    #else
//    while(0 != Flash_Init(6, TRUE));//主频24M
//    #endif
    
    while(0 != Flash_Init(1, TRUE));
    printf("System Flash Init is OK\r\n");
}
